This FREEWARE package allows the user to view the time-wave and frequency spectrum LIVE from any Macintosh® sound input device. Real-time display is possible on faster Macintoshes; display rates of >110 frames per second are possible on a Power Mac 8100/100; >35 fps on a Quadra 950. A "Waterfall", or raster plot of previous spectral history, is presented in a separate window. Recording and playback of monophonic 8-bit sound is supported; a spectrogram can be made of the captured data; whether recorded by SoundView, or imported from a sound file. A readout provides the frequency value of a point specified by the mouse cursor.
This package contains:
• This file: "SoundView ReadMe".
• The application itself. No special installation is required.
System Requirements:
Any Macintosh computer with:
• A 68020 or better processor. (FPU is NOT required. )
• A sound input device.
• Sound Manager 3.0 (included in system 7.5, an extension for earlier systems).
How to run:
• Open the application "SoundView". Use the INPUT DEVICE selection in the OPTIONS menu to choose from among available devices. Use balloon help for assistance regarding the menu choices.
• For maximum speed (in decreasing order of benefit):
• Set your main monitor to 256 colors.
• Set the Block Size to 256.
• Set the Sample Rate in the OPTIONS menu to the highest value allowed.
• Close other backgrounding programs (Especially Launcher - why, I do not know....)
• Reduce ΔX , ΔY, #Lines in the WATERFALL menu.
• Close the Time or Waterfall windows, whichever you do not need.
• Turn off 'Lines Mode' in the OPTIONS menu.
• Turn off 'Sync' in the OPTIONS menu.
• Turn off TimeWave or Frequency display in OPTIONS menu.
• If you have more than one monitor, don't let any window overlap a boundary between them.
• Close the Spectragram and Capture windows.
• Disable extensions. The claimed speeds are conservative, I have found. If I disable all extensions, the speed on a 8100/80 has been as high as 138 FPS!!!! TimbukTu / Remote and MacsBug are some of the largest time thieves.
• Play a Stevie Ray Vaughan CD. (:->)
Other things not described in the balloons:
• In the WATERFALL menu, set ΔX to zero and the mouse frequency readout becomes active in the waterfall window.
• In the WATERFALL menu, set both ΔX and ΔY to zero and you have a peak-hold display.
• Click in the Waterfall window to clear the old data.
• In the Captured window, the radio buttons are used to zoom in on the captured data. When zoom factor is > 1, use the scroll bar to move the view.
• The time taken to make a spectrogram does NOT depend on the length of the captured data. Exactly 512 FFTs are performed, whether the data is 2 seconds or 20 seconds long. This results in 512 columns in the window. The block size setting, and CPU speed, are the primary factors affecting spectrogram speed.
• You can re-make the spectrogram with a different block size without re-recording. This allows you to change range and resolution.
• The Frames per Second number in the SPEED menu is affected by perusing the menus, the About box, or switching from background. Allow about 3 seconds after any of these before the reading is accurate. ( This number is averaged. )
• The µSec numbers in the SPEED menu are valid (on PowerMacs) for the most recent operation. If the operation was interrupted (by mouse, disk, network, or who-knows-what), these numbers are adversely affected. Do not base anything on a single reading.
For those suitably demented:
The source code is available via GOPHER or FTP (NOT WorldWideWeb) to:
WWW.PHYSICS.SWRI.EDU
Includes:
• World's fastest* Fourier transform for PPC & 68K.
• World's fastest* integer SquareRoot for PPC & 68K.
• Fast line drawing (thanks, Mr. Bresenham!)
• Offscreen drawing and screen blasting.
• Building FAT projects.
• Balloon help for menu items.
* well, I didn't actually consult Mr. Guinness - if anyone can find a faster algorithm, please let me know.
Obligatory Verbiage in the Form of a Disclaimer:
This is not an official product of my employer, despite possible implications by previous versions.
Version history:
1.0.9 - Jun 14,1995.
• Fixed bug where waterfall lines ( with lines mode ON) were 2 pixels tall even with zero amplitude. (introduced with 1.0.8 "cleanup" )
• Properly centered display of X mouse readout in spectrogram window. Previously, times >= 10.00 seconds left residue on screen. (mouse droppings? :•>)
• Fixed bug where saving a sound into an existing file would not replace the 'snd ' resources there, but would add another resource. Now it deletes any and all 'snd ' resources before saving the new one.
• In lines mode, went back to old (1.0.2) method of drawing lines in waterfall window only, i.e., from amplitude 0 to amplitude 1 to amplitude 2, because it looks better... Spectrum drawing in main window is still vertical lines from 0 to amplitude 0, from 0 to amplitude 1... (in lines mode).
• Added ability to read WAV files ( from WINDOZE ). File name must end in '.WAV' (caps required).
• Added more speech about menu items chosen. (Sync, Lines Mode, etc. )
• Fixed bug where making spectrogram of short sound with large block size produced garbage at the end of the spectrogram.
• Restored proper operation of calibration keys (Press OPTION, SHIFT, and/or CONTROL). This creates a pure sine wave at 1 of 8 frequencies at one-half full scale amplitude, instead of the input signal. (Turn on LINES MODE to better see it). They were always there, but poor event handling didn't recognize them unless some other event occurred.
• Added MARKs for all routines in all files (I think). Marks had not kept up with me.
• Fixed bug where on some machines, after calling for RECORD function, program would complain about errors and quit. Finally traced it down. (Thanks, Clare!)
1.0.8 - Jun 6,1995.
• Fixed bug when switching to / from background.
• Fixed bug in debugging code (!!!), which had not kept up with changes elsewhere, because it was disabled. Did not affect released app, but could not compile source with my debugging code enabled.
• Fixed bug in menu display of non-integer sample rates. They were rounded to integer values, for no good reason.
• Fixed bug in balloon help regarding rainbow/grayscale choices.
• Fixed bug where if some other program had set the input sample rate to less than the highest value available, SoundView was incorrectly assuming the highest setting. Now I actually set it upon startup.
• Fixed bug where if you captured a large sound, or were otherwise short on memory, then expanded the waterfall ΔX, ΔY, or #lines, the window would expand, but the offscreen buffer supporting it might not. Results were colorful, and amusing, but not useful. Now you get a 'no can do' message.
• Fixed bug: BOOST SPECTRUM did not work on 68K version. Now it does.
• Moved waterfall window to the left side of the screen, and the time / spectrum window to the right. This is because the waterfall window expands downward and rightward, and was expanding offscreen.
• Finished commenting and cleaning up all code. Removed a few obsolete routines, unnecessary #INCLUDE directives, etc.
1.0.7b- Jun 2,1995. Not sent to archives, but available on server.
• Removed gratituitous references to my employer, replaced with more appropriate logo.
• Corrected spelling of "Spectragram" to Spectrogram" throughout source code (Thanks, Paul!). This includes the files named "Spectragram.c" and "Spectragram.h". (Hey, at least I was consistent! :-)
1.0.7a- Jun 1,1995. Not sent to archives, but available on server.
• Source code was cleaned up and comments added. No bug fixes or functional changes.
• Added the 'Other Things..' section above.
• Changed 'System Requirements' section above to reflect the fact that some code requires a 68020 processor, at least. (Previous version said 'Any Macintosh').
1.0.7 - May 30,1995.
• Changed to compile with 'weak' link to PowerMac speech library, so that if Speech Manager is not present, MacOS will not complain. 68K version not affected. Thanks to all who reported this.
1.0.6 - May 26,1995.
• First public release.
Please send E-mail to the above address with comments or questions.